Methods And Systems For Content Consumption

ABSTRACT

Methods and systems for content consumption are described. One method comprises providing content to a first device, receiving a command to provide the content to a second device, determining the second device from a plurality of devices based on a proximity metric, and providing the content to the second device. The command can indicate a switch point, specify one or more non-transferable devices and block the direction of content transfer between certain devices.

BACKGROUND

Current network technology enables content consumption through differentuser devices. Content can be transferred from one device to another, forexample, from a television to a desktop computer or from a mobile phoneto a laptop, when the devices are within the same network. Users candirect the transfer of content between devices according to a transferprotocol. The transfer protocol, however, requires the user to specifywhere the content will be displayed. These and other shortcomings areidentified and addressed by the present disclosure.

SUMMARY

It is to be understood that both the following general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive, as claimed. Provided are methods and systemsfor content consumption. An example method for content consumption cancomprise providing content to a first device, receiving a command toprovide the content to a second device, determining the second devicefrom a plurality of devices based on a proximity metric, and providingthe content to the second device.

Another example method for content consumption can comprise receiving arequest to switch content from being delivered to a first device tobeing delivered to a second device, receiving a switch point,determining the second device from a plurality of devices based on aproximity metric, and providing a command to provide content to thesecond device at the switch point.

An example apparatus for content consumption can comprise a memory and aprocessor. In an aspect, the processor can be configured to receive arequest to switch content from being delivered to a first device tobeing delivered to a second device, receive a switch point, determinethe second device from a plurality of devices based on a proximitymetric, and provide a command to provide content to the second device atthe switch point. In an aspect, the memory can be configured to storeproximity metrics, such as RSSI value or GPS coordinates of the firstdevice and the plurality of devices.

Additional advantages will be set forth in part in the description thatfollows or may be learned by practice. The advantages will be realizedand attained by means of the elements and combinations particularlypointed out in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments and together with thedescription, serve to explain the principles of the methods and systems:

FIG. 1 is a block diagram of an exemplary system for contentconsumption;

FIG. 2 is a block diagram of an exemplary system and network for contentconsumption:

FIG. 3 is a block diagram of an exemplary system environment for contentconsumption;

FIG. 4 is a block diagram of an exemplary system environment for contentconsumption;

FIG. 5 is a block diagram of an exemplary system environment for contentconsumption;

FIG. 6 is a block diagram of an exemplary system environment for contentconsumption;

FIG. 7 is a block diagram of an exemplary system environment for contentconsumption;

FIG. 8 is a flowchart illustrating an example method for contentconsumption; and

FIG. 9 is a flowchart illustrating another example method for contentconsumption.

DETAILED DESCRIPTION

Before the present methods and systems are disclosed and described, itis to be understood that the methods and systems are not limited tospecific methods, specific components, or to particular implementations.It is also to be understood that the terminology used herein is for thepurpose of describing particular embodiments only and is not intended tobe limiting.

As used in the specification and the appended claims, the singular forms“a,” “an,” and “the” include plural referents unless the context clearlydictates otherwise.

Ranges may be expressed herein as from “about” one particular value,and/or to “about” another particular value. When such a range isexpressed, another embodiment includes from the one particular valueand/or to the other particular value. Similarly, when values areexpressed as approximations, by use of the antecedent “about,” it willbe understood that the particular value forms another embodiment. Itwill be further understood that the endpoints of each of the ranges aresignificant both in relation to the other endpoint, and independently ofthe other endpoint.

“Optional” or “optionally” means that the subsequently described eventor circumstance may or may not occur, and that the description includesinstances where said event or circumstance occurs and instances where itdoes not.

Throughout the description and claims of this specification, the word“comprise” and variations of the word, such as “comprising” and“comprises,” means “including but not limited to,” and is not intendedto exclude, for example, other components, integers or steps.“Exemplary” means “an example of” and is not intended to convey anindication of a preferred or ideal embodiment. “Such as” is not used ina restrictive sense, but for explanatory purposes.

Disclosed are components that can be used to perform the disclosedmethods and systems. These and other components are disclosed herein,and it is understood that when combinations, subsets, interactions,groups, etc. of these components are disclosed that while specificreference of each various individual and collective combinations andpermutation of these may not be explicitly disclosed, each isspecifically contemplated and described herein, for all methods andsystems. This applies to all aspects of this application including, butnot limited to, steps in disclosed methods. Thus, if there are a varietyof additional steps that can be performed it is understood that each ofthese additional steps can be performed with any specific embodiment orcombination of embodiments of the disclosed methods.

The present methods and systems may be understood more readily byreference to the following detailed description of preferred embodimentsand the examples included therein and to the Figures and their previousand following description.

As will be appreciated by one skilled in the art, the methods andsystems may take the form of an entirely hardware embodiment, anentirely software embodiment, or an embodiment combining software andhardware aspects.

Furthermore, the methods and systems may take the form of a computerprogram product on a computer-readable storage medium havingcomputer-readable program instructions (e.g., computer software)embodied in the storage medium. More particularly, the present methodsand systems may take the form of web-implemented computer software. Anysuitable computer-readable storage medium may be utilized including harddisks, CD-ROMs, optical storage devices, or magnetic storage devices.

Embodiments of the methods and systems are described below withreference to block diagrams and flowchart illustrations of methods,systems, apparatuses and computer program products. It will beunderstood that each block of the block diagrams and flowchartillustrations, and combinations of blocks in the block diagrams andflowchart illustrations, respectively, can be implemented by computerprogram instructions. These computer program instructions may be loadedonto a general purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions which execute on the computer or other programmabledata processing apparatus create a means for implementing the functionsspecified in the flowchart block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including computer-readableinstructions for implementing the function specified in the flowchartblock or blocks. The computer program instructions may also be loadedonto a computer or other programmable data processing apparatus to causea series of operational steps to be performed on the computer or otherprogrammable apparatus to produce a computer-implemented process suchthat the instructions that execute on the computer or other programmableapparatus provide steps for implementing the functions specified in theflowchart block or blocks.

Accordingly, blocks of the block diagrams and flowchart illustrationssupport combinations of means for performing the specified functions,combinations of steps for performing the specified functions and programinstruction means for performing the specified functions. It will alsobe understood that each block of the block diagrams and flowchartillustrations, and combinations of blocks in the block diagrams andflowchart illustrations, can be implemented by special purposehardware-based computer systems that perform the specified functions orsteps, or combinations of special purpose hardware and computerinstructions.

In an aspect, the methods and systems can utilize digital audio/videocompression, such as MPEG or any other type of compression. The MovingPictures Experts Group (MPEG) was established by the InternationalStandards Organization (ISO) for the purpose of creating standards fordigital audio/video compression. The MPEG experts created the MPEG-1 andMPEG-2 standards, with the MPEG-1 standard being a subset of the MPEG-2standard. The combined MPEG-1, MPEG-2, and MPEG-4 standards arehereinafter referred to as MPEG. In an MPEG encoded transmission,content and other data are transmitted in packets, which collectivelymake up a transport stream. Additional information regarding transportstream packets, the composition of the transport stream, types of MPEGtables, and other aspects of the MPEG standards are described below. Inan exemplary embodiment, the present methods and systems can employtransmission of MPEG packets. However, the present methods and systemsare not so limited, and can be implemented using other types oftransmission and data.

In one aspect of the disclosure, a system can be configured to provideservices, such as network-related services, to a user device. Thepresent disclosure is relevant to systems and methods for providingservices to a device. For example, content delivery services to a userdevice, such as a computer, tablet, mobile device, communicationsterminal, and the like. In an aspect, one or more network devices can beconfigured to provide various services to one or more devices, such asdevices located at or near a premise. In another aspect, the networkdevices can be configured to recognize an authoritative device for thepremises and/or a particular service or services available at thepremises. As an example, an authoritative device can be configured togovern or enable connectivity to a network, such as the Internet orother remote resources, to provide address and/or configuration serviceslike DHCP, and/or to provide naming or service discovery services for apremises, or a combination thereof.

The present disclosure relates to systems and methods for the transferof content consumption from a first/original device to a second/targetdevice within the same network based on a proximity metric. In anaspect, a request can be received to switch content from being deliveredto a first device to being delivered to a second device. The selectionof the second device can be achieved by comparing proximity metrics ofthe first device and a plurality of other devices visible to the samenetwork. The device with the least difference in proximity metric can beselected as a second device (target device). Once the second device isselected, content can be provided to the second device. In an aspect,specific devices can be excluded from the selection process.

FIG. 1 illustrates various aspects of an exemplary environment in whichthe present methods and systems can operate. Those skilled in the artwill appreciate that present methods may be used in systems that employboth digital and analog equipment. One skilled in the art willappreciate that provided herein is a functional description and that therespective functions can be performed by software, hardware, or acombination of software and hardware.

FIG. 1 is a block diagram of an exemplary system for contentconsumption.

In an aspect, the system can comprise a plurality of user devices 101,101 a, 101 b, 101 c and 101 d in communication with a computing device104, for example, a server. The computing device 104 can be disposedlocally or remotely relative to user devices 101, 101 a, 101 b, 101 cand 101 d. User devices 101, 101 a, 101 b, 101 c and 101 d and thecomputing device 104 can be in communication via a private and/or apublic network 105, for example, a local area network or the Internet.Other possible modes of communication between devices are wired andwireless telecommunication channels. For example, user devices 101, 101a, 101 b, 101 c and 101 d can be connected to a wired and/or wirelessnetwork using Wi-Fi, Bluetooth or any desired method or standard.

In an aspect, user devices 101, 101 a, 101 b, 101 c and 101 d can be anydevice capable of communicating with the computing device 104. In anaspect, user devices 101, 101 a, 101 b, 101 c and 101 d can be differenttypes of devices. As an example, user devices 101, 101 a, 101 b, 101 cand 101 d can be electronic devices, such as desktop computers, smartphones, laptops, tablets, set top boxes, and the like. In an aspect, theuser devices 101, 101 a, 101 b, 101 c and 101 d can comprise arespective communication element 106 that provides a user interface forinteraction with the respective user device 101, 101 a, 101 b, 101 c and101 d and/or the computing device 104. Communication element 106 can beany interface for presenting and/or receiving information to/from theuser. Other configurations of software, hardware, and/or interfaces canbe used to enable communication between the user, the computing device104, and one or more of the user devices 101, 101 a, 101 b, 101 c and101 d. The communication element 106 can be used to perform a variety ofoperations, for example, request or query various files from a localsource and/or a remote source. In a further example, the communicationelement 106 can be used to transmit data to a local or remote device,for example, the computing device 104.

In an aspect, the user devices 101, 101 a, 101 b, 101 c and 101 d cancomprise a respective proximity metric processor 120. The proximitymetric processor 120 can be configured to receive a request to switchcontent from being delivered to a first device to being delivered to asecond device, receive a switch point, determine the second device froma plurality of devices based on a proximity metric, and provide acommand to provide content to the second device at the switch point. Asan example, the proximity metric processor 120 can collect and processproximity metric information from user devices 101, 101 a, 101 b, 101 cand 101 d to determine the second user device.

The proximity metric processor 120 can receive and compare locationinformation. In an aspect, the proximity metric processor 120 cancomprise a location element 122, i.e., a device and/logic that canreceive and process location information. The location information canbe coordinates, such as latitude, longitude, altitude and the like froma satellite based positioning system, for example, a global positioningsystem (GPS). In another aspect, the location information can be signalstrength indicator (RSSI) values.

The user devices 101, 101 a, 101 b, 101 c and 101 d can be associatedwith a user identifier or device identifier 108. As an example, thedevice identifier 108 can be any identifier, token, character, string,or the like, for differentiating one user or user device (e.g., userdevices 101, 101 a, 101 b, 101 c and 101 d) from another user or userdevice. In a further aspect, the device identifier 108 can identify auser or user device as belonging to a particular class of users or userdevices. As a further example, the device identifier 108 can compriseinformation relating to the user device, such as a manufacturer, a modelor type of device, a service provider associated with the user devices,a state of the user devices, a locator, and/or a label or classifier.Other information can be represented by the device identifier 108. Byway of example, the device identifier 108 can be used to address contentto a specific user device. As an example, when determining a second userdevice, the content provider can obtain the device identifier 108associated with the second user device and thereby provide the contentto the second user device.

In an aspect, the device identifier 108 can comprise an address element110 and a service element 112. In an aspect, the address element 110 cancomprise or provide an internet protocol address, a network address, amedia access control (MAC) address, an Internet address, or the like. Asan example, the address element 110 can be relied on to establish acommunication session between the user devices 101, 101 a, 101 b, 101 cand 101 d and the computing device 104 or other devices and/or networks.As a further example, the address element 110 can be used as anidentifier or locator of the user devices 101, 101 a, 101 b, 101 c and101 d. In an aspect, the address element 110 can be persistent for aparticular network. For example, a content provider can obtain theaddress element 110 associated with a specific user device and therebydeliver content to the specific device at its location.

The service element 112 can comprise an identification of a serviceprovider associated with the user devices and/or with the class of userdevices. The class of the user devices can be related to a type ofdevice, capability of device, type of service being provided, and/or alevel of service (e.g., business class, service tier, service package,etc.). As an example, the service element 112 can comprise informationrelating to or provided by a communication service provider (e.g.,Internet service provider) that is providing or enabling data flow, suchas communication services, to the user devices 101, 101 a, 101 b, 101 cand 101 d. As a further example, the service element 112 can compriseinformation relating to a preferred service provider for one or moreparticular services relating to the user devices. In an aspect, theaddress element 110 can be used to identify or retrieve data from theservice element 112, or vise versa. As a further example, one or more ofthe address element 110 and the service element 112 can be storedremotely from the user devices and retrieved by one or more devices,such as the user devices 101, 101 a, 101 b, 101 c and 101 d and thecomputing device 104. Other information can be represented by theservice element 112.

In an aspect, the computing device 104 can be a server for communicatingwith the user devices 101, 101 a, 101 b, 101 c and 101 d. As an example,the computing device 104 can communicate with the user devices 101, 101a, 101 b. 101 c and 101 d for providing data and/or services. As anexample, the computing device 104 can provide services, such as network(e.g., Internet) connectivity, network printing, media management (e.g.,media server), content services, streaming services, broadband services,or other network-related services. In an aspect, the computing device104 can allow the user devices 101, 101 a, 101 b, 101 c and 101 d tointeract with remote resources, such as data, devices, and files. As anexample, the computing device can be configured as (or disposed at) acentral location (e.g., a headend, or processing facility), which canreceive content (e.g., data, input programming) from multiple sources.The computing device 104 can combine the content from the multiplesources and can distribute the content to user (e.g., subscriber)locations via a distribution system.

In an aspect, the computing device 104 can manage the communicationbetween the user devices 101, 101 a, 101 b, 101 c and 101 d and adatabase 114 for sending and receiving data therebetween. As an example,the database 114 can store a plurality of files (e.g., web pages), useridentifiers or records, or other information. As a further example, theuser devices 101, 101 a, 101 b, 101 c and 101 d can request and/orretrieve a file from the database 114. In an aspect, the database 114can store information relating to the user devices 101, 101 a, 101 b,101 c and 101 d, such as the address element 110 and/or the serviceelement 112. As an example, the computing device 104 can obtain thedevice identifier 108 from the user devices 101, 101 a, 101 b, 101 c and101 d and retrieve information from the database 114, such as theaddress element 110 and/or the service elements 112. As a furtherexample, the computing device 104 can obtain the address element 110from the user devices 101, 101 a, 101 b, 101 c and 101 d and canretrieve the service element 112 from the database 114, or vice versa.Any information can be stored in and retrieved from the database 114.The database 114 can be disposed remotely from the computing device 104and accessed via direct or indirect connection. The database 114 can beintegrated with the computing system 104 or some other device or system.

One or more network devices 116 can be in communication with a network,such as network 105. As an example, one or more of the network devices116 can facilitate the connection of a device, such as user devices 101,101 a, 101 b, 101 c and 101 d, to the network 105. As a further example,one or more of the network devices 116 can be configured as a wirelessaccess point (WAP). In an aspect, one or more network devices 116 can beconfigured to allow one or more wireless devices to connect to a wiredand/or wireless network using Wi-Fi, Bluetooth or any desired method orstandard.

The network device 116 can be configured as a local area network (LAN).As an example, the network device 116 can comprise a dual band wirelessaccess point. In an aspect, network device 116 can serve as a wirelessbase station, a plurality of user devices 101, 101 a, 101 b, 101 c and101 d can be routed through network device 116 and visible by thenetwork device 116. As an example, the network device 116 can beconfigured with a service set identifier (SSID) (e.g., associated with auser network or private network) to function as a local network for aparticular user or users. As an example, the network device 116 can beconfigured to communicate with a content provider (e.g. the computingdevice 104), thereby delivering content to one or more user devices, forexample, 101, 101 a, 101 b, 101 c and 101 d. As another example, thenetwork device 116 can be configured as a wireless access point (WAP)and an RSSI value of the user devices with respect to the network device116 can be obtained.

In an aspect, one or more network devices 116 can comprise a respectiveidentifier 118. As an example, one or more identifiers can be or relateto an Internet Protocol (IP) Address IPV4/IPV6 or a media access controladdress (MAC address) or the like. As a further example, one or moreidentifiers 118 can be a unique identifier for facilitatingcommunications on the physical network segment. In an aspect, each ofthe network devices 116 can comprise a distinct identifier 118. As anexample, the identifiers 118 can be associated with a physical locationof the network devices 116.

In an aspect, the methods and systems can be implemented on a userdevice 201 as illustrated in FIG. 2 and described below. By way ofexample, user devices 101, 101 a, 101 b, 101 c and 101 d of FIG. 1 canbe the user device 201 as illustrated in FIG. 2. Similarly, the methodsand systems disclosed can utilize one or more computers to perform oneor more functions in one or more locations. FIG. 2 is a block diagramillustrating an exemplary operating environment for performing thedisclosed methods. This exemplary operating environment is only anexample of an operating environment and is not intended to suggest anylimitation as to the scope of use or functionality of operatingenvironment architecture. Neither should the operating environment beinterpreted as having any dependency or requirement relating to any oneor combination of components illustrated in the exemplary operatingenvironment.

The present methods and systems can be operational with numerous othergeneral purpose or special purpose computing system environments orconfigurations. Examples of well known computing systems, environments,and/or configurations that can be suitable for use with the systems andmethods comprise, but are not limited to, personal computers, servercomputers, laptop devices, and multiprocessor systems. Additionalexamples comprise set top boxes, programmable consumer electronics,network PCs, minicomputers, mainframe computers, distributed computingenvironments that comprise any of the above systems or devices, and thelike.

The processing of the disclosed methods and systems can be performed bysoftware components. The disclosed systems and methods can be describedin the general context of computer-executable instructions, such asprogram modules, being executed by one or more computers or otherdevices. Generally, program modules comprise computer code, routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Thedisclosed methods can also be practiced in grid-based and distributedcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed computing environment, program modules can be located inboth local and remote computer storage media including memory storagedevices.

Further, one skilled in the art will appreciate that the systems andmethods disclosed herein can be implemented via a general-purposecomputing device in the form of user devices 201, 201 a, 201 b and 201c. The components of the user devices 201, 201 a, 201 b and 201 c cancomprise, but are not limited to, one or more processor 203, a systemmemory 212, and a system bus 213 that couples various system componentsincluding the processor 203 to the system memory 212. In an aspect,multiple processors can be used and the system can utilize parallelcomputing.

The system bus 213 represents one or more of several possible types ofbus structures, including a memory bus or memory controller, aperipheral bus, an accelerated graphics port, and a processor or localbus using any of a variety of bus architectures. By way of example, sucharchitectures can comprise an Industry Standard Architecture (ISA) bus,a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, aVideo Electronics Standards Association (VESA) local bus, an AcceleratedGraphics Port (AGP) bus, and a Peripheral Component Interconnects (PCI),a PCI-Express bus, a Personal Computer Memory Card Industry Association(PCMCIA), Universal Serial Bus (USB) and the like. The bus 213, and allbuses specified in this description can also be implemented over a wiredor wireless network connection and each of the subsystems, including theprocessor 203, a mass storage device 204, an operating system 205,content consumption software 206, content consumption data 207, anetwork adapter 208, system memory 212, an Input/Output Interface 210, adisplay adapter 209, a display device 211, and a human machine interface202, can be contained within one or more user devices 201, 201 a, 201 band 201 c at physically separate locations, connected through buses ofthis form, in effect implementing a fully distributed system.

The user devices 201, 201 a, 201 b and 201 c typically comprise avariety of computer readable media. Exemplary readable media can be anyavailable media that is accessible by the user devices 201, 201 a, 201 band 201 c and comprises, for example and not meant to be limiting, bothvolatile and non-volatile media, removable and non-removable media. Thesystem memory 212 comprises computer readable media in the form ofvolatile memory, such as random access memory (RAM), and/or non-volatilememory, such as read only memory (ROM). The system memory 212 typicallycontains data, such as content consumption data 207, and/or programmodules, such as operating system 205 and content consumption software206, that are immediately accessible to and/or are presently operated onby the processor 203.

In another aspect, the user devices 201, 201 a, 201 b and 201 c can alsocomprise other removable/non-removable, volatile/non-volatile computerstorage media. By way of example, FIG. 2 illustrates a mass storagedevice 204 that can provide non-volatile storage of computer code,computer readable instructions, data structures, program modules, andother data for the user devices 201, 201 a, 201 b and 201 c. For exampleand not meant to be limiting, a mass storage device 204 can be a harddisk, a removable magnetic disk, a removable optical disk, magneticcassettes or other magnetic storage devices, flash memory cards, CD-ROM,digital versatile disks (DVD) or other optical storage, random accessmemories (RAM), read only memories (ROM), electrically erasableprogrammable read-only memory (EEPROM), and the like.

Optionally, any number of program modules can be stored on the massstorage device 204, including by way of example, an operating system 205and content consumption software 206. Each of the operating system 205and content consumption software 206 (or some combination thereof) cancomprise elements of the programming and the content consumptionsoftware 206. Content consumption data 207 can also be stored on themass storage device 204. Content consumption data 207 can be stored inany of one or more databases known in the art. Examples of suchdatabases comprise. DB2®, Microsoft®k Access, Microsoft SQL Server,Oracle®, mySQL, PostgreSQL, and the like. The databases can becentralized or distributed across multiple systems.

In another aspect, the user can enter commands and information into theuser devices 201, 201 a, 201 b and 201 c via an input device (notshown). Examples of such input devices comprise, but are not limited to,a keyboard, pointing device (e.g., a “mouse”), a microphone, a joystick,a scanner, tactile input devices such as gloves, and other bodycoverings, and the like. These and other input devices can be connectedto the processor 203 via a human machine interface 202 that is coupledto the system bus 213, but can be connected by other interface and busstructures, such as a parallel port, game port, an IEEE 1394 Port (alsoknown as a Firewire port), a serial port, or a universal serial bus(USB).

In yet another aspect, a display device 211 can also be connected to thesystem bus 213 via an interface, such as a display adapter 209. It iscontemplated that the user devices 201, 201 a, 201 b and 201 c can havemore than one display adapter 209 and the user device 201 can have morethan one display device 211. For example, a display device can be amonitor, an LCD (Liquid Crystal Display), or a projector. In addition tothe display device 211, other output peripheral devices can comprisecomponents, such as speakers (not shown) and a printer (not shown), thatcan be connected to the user devices 201, 201 a, 201 b and 201 c viaInput/Output Interface 210. Any step and/or result of the methods can beoutput in any form to an output device. Such output can be any form ofvisual representation, including, but not limited to, textual,graphical, animation, audio, tactile, and the like. The display 211 anduser devices 201, 201 a, 201 b and 201 c can be part of one device, orseparate devices.

The user device 201 can operate in a networked environment using logicalconnections to one or more user devices 201 a, 201 b, 201 c. By way ofexample, a user device can be a personal computer, portable computer,smartphone, a server, a router, a network computer, a peer device orother common network node, and so on. Logical connections between theuser device 201, 201 a, 201 b and 201 c can be made via a network device116. Such network connections can be through a network adapter 208. Anetwork adapter 208 can be implemented in both wired and wirelessenvironments. Such networking environments are conventional andcommonplace in dwellings, offices, enterprise-wide computer networks,intranets, and the Internet.

For purposes of illustration, application programs and other executableprogram components, such as the operating system 205, are illustratedherein as discrete blocks, although it is recognized that such programsand components reside at various times in different storage componentsof the user devices 201, 201 a, 201 b and 201 c are executed by the dataprocessor(s) of the computer. An implementation of content consumptionsoftware 206 can be stored on or transmitted across some form ofcomputer readable media. Any of the disclosed methods can be performedby computer readable instructions embodied on computer readable media.Computer readable media can be any available media that can be accessedby a computer. By way of example and not meant to be limiting, computerreadable media can comprise “computer storage media” and “communicationsmedia.” “Computer storage media” comprise volatile and non-volatile,removable and non-removable media implemented in any methods ortechnology for storage of information, such as computer readableinstructions, data structures, program modules, or other data. Exemplarycomputer storage media comprises, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by a computer.

The methods and systems can employ artificial intelligence (AI)techniques, such as machine learning and iterative learning. Examples ofsuch techniques include, but are not limited to, expert systems, casebased reasoning, Bayesian networks, behavior based AI, neural networks,fuzzy systems, evolutionary computation (e.g. genetic algorithms), swarmintelligence (e.g. ant algorithms), and hybrid intelligent systems (e.g.Expert inference rules generated through a neural network or productionrules from statistical learning).

FIG. 3 illustrates a block diagram of an exemplary system environmentfor content consumption. The system can comprise a network device 116and a plurality of user devices 101, 101 a, 101 b, 101 c and 101 dconfigured to network device 116. In one aspect, network device 116serves as a wireless base station. For example, network devices 116 canbe configured to allow user devices 101, 101 a. 101 b, 101 c and 101 dto connect to a wired and/or wireless network using Wi-Fi, Bluetooth orany desired method or standard. All user devices 101, 101 a, 101 b, 101c and 101 d visible to the network device 116 can be consideredpotential second devices/target devices. Communications between userdevices 101, 101 a, 101 b, 101 c and 101 d can be routed through networkdevice 116. One or more devices connected to network device 116 can beequipped with a proximity metric processor 120 configured to determine aproximity metric for the user device. The proximity metric of each userdevice can be compared and thereby used to determine the second devicefrom a plurality of user devices. In an aspect, a proximity metricprocessor 120 can be implemented in user devices 101, 101 a, 101 b, 101c and 101 d to receive and compare location information of the userdevices. For example, the proximity metric processor 120 can comprise alocation element 122 that can receive and process location informationof the user devices. In an aspect, the location information can becoordinates, such as latitude, longitude, altitude, and the like. Thecoordinates can be compared to determine the proximity of one userdevice to another user device. In another aspect, the locationinformation can be the value of a RSSI of a user device within thenetwork. The RSSI value can be compared to determine the proximity ofone user device to another user device.

As an example, shown in FIG. 3, a group of user devices connected tonetwork device 116 can each have a RSSI value. A value comparisonbetween the first device and each of the plurality of devices can bemade. The device with the least difference in value can be selected asthe second device for content consumption. In an aspect, devices can bespecifically blocked for content consumption by the user regardless ofthe difference in RSSI values.

FIG. 4 illustrates another block diagram of an exemplary systemenvironment for content consumption. The proximity metric can be anyindicator of relative position information, such as RSSI, GPScoordinates or other position information. As an example, the RSSIreading for the first user device 101 is 75, and the RSSI readings forthe plurality of user devices are 76 for user device 101 a, 57 for userdevice 101 b. 35 for user device 101 c and 81 for user device 101 d.User device 101 a can be identified as having the closest RSSI readingto user device 101, indicating that the user device 101 a is the closestone to the first user device 101 and therefore the chosen one for thesecond device.

Transfer of content consumption can be activated by a user command.Examples of user commands can include multi-touch gestures, mouse clicksand remote control commands. The type of command utilized will beappropriate for the device in use. For example, a multi-touch gesturecan be used for a smartphone, tablet or multi-touch trackpad on adesktop computer. A remote control command can be used for a set topbox. The devices within the same network can operate on the same ordifferent platforms. For example, content transfer can be transferredfrom one DVR to another, from a laptop to a tablet, or from a smartphone to a television.

In another aspect, the user can designate one or more specific devicesas non-transferable. The proximity metric of these devices will be notconsidered by the system. FIG. 5 illustrates a block diagram of anexemplary system environment for content consumption. In an aspect, whena device in the system has been designated as non-transferable, thenon-transferable device and any proximity metrics from thenon-transferable device (such as RSSI) can be excluded. For example,assuming that the RSSI readings are the same as in FIG. 4. User device101 a has the closest RSSI reading to the first user device 101. In thepresent illustration, however, if user device 101 a is anon-transferable device, user device 101 d will be chosen as the seconduser device for content consumption. In yet another example, the usercan configure the system to exclude direct transfer between certaintypes of user devices. For example, a user may wish to prevent thetransfer of content from a smart phone to a tablet, from a DVR to asmart phone, or from one device to any other device of the same type. Inthe last case, a certain type of device will not be considered as thesecond user device, depending on the type of the first user device.

FIG. 6 illustrates another block diagram of an exemplary systemenvironment for content consumption. In one aspect, devices connected tothe network device 116 can acquire GPS coordinates. For example,location element 122 of the proximity metric processor 120 can collectlatitude and longitude of the user device. Elevation and/or altitudeinformation can also be included. The GPS coordinates of the firstdevice and each of the plurality of devices within the network can thenbe used to determine the second device. Specifically, the user devicewith closest GPS coordinates to the first user device can be selected asthe second device for content consumption.

It should be noted that more than one type of location and/or distancemeasurement can be used to determine the second device. For example, acombination of RSSI and GPS coordinates can be used for this purpose.Specifically, both RSSI and GPS coordinates can be collected byproximity metric processor 120. The user device with both the closestGPS coordinates and the closest RSSI reading to the first device can beselected as the second device for content consumption. It should also benoted that the present disclosure is not limited thereto and is equallyapplicable to other location and/or distance measurement techniques aswill be readily apparent to those skilled in the art from thedescription provided herein. For example, orientation information of auser device can be used to facilitate the selection of a second device.As an example, one or more compasses implemented in user devices can beused to determine an orientation of a second device with respect to afirst device, or the orientation of a second device with respect to afirst device. In an aspect, the orientation information can be combinedwith location information such as RSSI reading and/or GPS coordinates todetermine the closest second device.

FIG. 7 illustrates a block diagram of an exemplary system environment.GPS coordinates are shown for each user device. User device 101 a isshown as having the closest GPS coordinates to the first user device101. User device 101 a can therefore be selected as the second userdevice. In another aspect, the user can designate one or more specificuser devices as non-transferable or block certain types of transfer fromone device to another. The GPS coordinates of any designatednon-transferable user devices can be excluded from consideration in thecomparison of proximity metrics.

In an aspect, illustrated in FIG. 8, provided is a method 800 by whichcontent can be transferred. At block 802, content can be provided to afirst device. For example, content can be delivered from the computingdevice 104 to the user device 101. As an example, content can comprise acommunication session, network access service, video content, audiocontent, short message, multimedia content, and the like.

At block 804, the first device can receive a content transfer commandfor providing content to a second device. For example, a contenttransfer command can be activated on the first device (e.g., user device101). In an aspect, the content transfer command can comprise adirection associated with the command. As an example, the direction canbe specified as from one type of device to another type of device. Inone aspect, the content transfer command can designate one or morenon-transferable user devices. In another aspect, the content transfercommand can exclude direct transfer between certain types of userdevices.

At block 806, the second device can be determined from a plurality ofdevices based on a proximity metric. In an aspect, the proximity metriccan be position information, such as RSSI, GPS coordinates, etc. As anexample, determining the second device from a plurality of devices basedon a proximity metric can comprise determining a RSSI for the firstdevice (e.g., user device 101), determining a RSSI for each of theplurality of devices (e.g., user devices 101 a, 101 b, 101 c, 101 d),determining which device of the plurality of devices has a RSSI with theleast difference from the RSSI for the first device (e.g., user device101), and identifying the device of the plurality of devices with theleast difference from the RSSI from the first device as the seconddevice. As another example, determining the second device from aplurality of devices based on a proximity metric can comprisedetermining a GPS location for the first device (e.g., user device 101),determining a GPS location for each of the plurality of devices (e.g.,user devices 101 a, 101 b, 101 c, 101 d), determining which device ofthe plurality of devices has a GPS location closest to the GPS locationfor the first device, and identifying the device of the plurality ofdevices closest to the first device as the second device.

As an example, the proximity metric processor 120 of the first device101 can collect the proximity metrics (e.g., RSSI value, GPScoordinates) of the user devices 101, 101 a, 101 b, 101 c and 101 d. Theproximity metrics of the user devices 101, 101 a, 101 b, 101 c and 101 dcan be communicated through the network device 116. The proximity metricof the first user device (e.g., user device 101) and the proximitymetrics of the plurality of other user devices (e.g., 101 a, 101 b, 101c, 101 d) on the network can be compared in the proximity metricprocessor 120 of the first device (e.g., user device 101). The userdevice with the closest proximity metric to the first device can beselected as the second device for content consumption.

In an aspect, if the content transfer command at block 804 indicates anon-transferable device, the proximity metric of the non-transferabledevice can be excluded. In another aspect, the content transfer commandat block 804 can exclude direct transfer between certain types of userdevices. In this case, the proximity metrics of certain types of devicescan be excluded. In another aspect, the content type being provided tothe first device can be determined and certain devices can be excludedfrom consideration as the second device based on the content type. Forexample, a television may not be able to display a content provided toan IP-enabled mobile device. If the first device is an IP-enabled mobiledevice, and the content type is an IP video stream, based on the contenttype provided to the first device, a television can be excluded fromconsideration as the second device.

At block 808, content can be provided to the selected second device, forexample, user device 101 a, 101 b, 101 c or 101 d. In an aspect, thenetwork device 116 can be informed of the choice of second device by itsdevice identifier 108 or address element 110 and direct the content tothe selected second device. As an example, content such as acommunication session, network access service, video content, audiocontent, short message, multimedia content being provided to the firstdevice at block 802 can be provided to the selected second device.

In another aspect, illustrated in FIG. 9, provided is a method 900 bywhich content can be transferred. At block 902, a request can bereceived to switch content from being delivered to a first device tobeing delivered to a second device. For example, a content transferrequest can be received on the first device (e.g., user device 101). Inan aspect, the request to switch content can comprise a directionassociated with the request. As an example, the direction can bespecified as from one type of device to another type of device. In oneaspect, the content transfer request can designate one or morenon-transferable user devices. In another aspect, the content transferrequest can exclude direct transfer between certain types of userdevices.

At block 904, a switch point can be received. A switch point can be amoment in time when the content being provided to a first device shouldbegin being provided to the second device. For example, a switch pointcan be X minutes from the time of receiving the content transferrequest. As another example, a switch point can be a specific time.

At block 906, the second device can be determined based on a proximitymetric. The proximity metric can be position information, such as RSSI,GPS coordinates, etc. As an example, determining the second device froma plurality of devices based on a proximity metric can comprisedetermining a RSSI for the first device (e.g., user device 101),determining a RSSI for each of the plurality of devices (e.g., userdevices 101 a, 101 b, 101 c, 101 d), determining which device of theplurality of devices has a RSSI with the least difference from the RSSIfor the first device (e.g., user device 101), and identifying the deviceof the plurality of devices with the least difference from the RSSI fromthe first device as the second device. As another example, determiningthe second device from a plurality of devices based on a proximitymetric can comprise determining a GPS location for the first device(e.g., user device 101), determining a GPS location for each of theplurality of devices (e.g., user devices 101 a, 101 b, 101 c, 101 d),determining which device of the plurality of devices has a GPS locationclosest to the GPS location for the first device, and identifying thedevice of the plurality of devices closest to the first device as thesecond device.

As an example, the proximity metric processor 120 of the first device101 can collect the proximity metrics of the user devices 101, 101 a,101 b, 101 c and 101 d. The proximity metrics of the user devices 101,101 a, 101 b, 101 c and 101 d can be communicated through the networkdevice 116. The proximity metric of the first user device (e.g., userdevice 101) and the proximity metrics of the plurality of other userdevices (e.g., 101 a, 101 b, 101 c, 101 d) on the network can becompared in the proximity metric processor 120 of the first device(e.g., user device 101). The device with the closest proximity metric tothe first device (e.g., user device 101) can be selected as the seconddevice for content consumption.

In an aspect, determining the second device can comprise excluding adevice from the plurality of devices from consideration as the seconddevice based on the direction associated with the request received atblock 902. For example, if the content transfer request at block 902indicates a non-transferable device, the proximity metric of thenon-transferable device can be excluded. In another aspect, the contenttransfer request at block 902 can exclude direct transfer betweencertain types of user devices. In this case, the proximity metric ofcertain types of devices can be excluded. In another aspect, the contenttype being provided to the first device can be determined and certaindevices can be excluded from consideration as the second device based onthe content type. For example, a television may not be able to display acontent provided to an IP-enabled mobile device. If the first device isan IP-enabled mobile device, and the content type is an IP video stream,based on the content type provided to the first device, a television canbe excluded from consideration as the second device.

At block 908, a command can be provided to provide content to the seconddevice at the switch point. For example, the network device 116 can beinformed of the choice of second device by its device identifier 108 oraddress element 110 and direct the content to the second device at thedesignated switch point (e.g., X minutes from the time of receiving therequest at block 902). The network device 116 can be informed of thechoice of second device by its device identifier 108 or address element110 and direct the content to the second device at a specific time.

While the methods and systems have been described in connection withpreferred embodiments and specific examples, it is not intended that thescope be limited to the particular embodiments set forth, as theembodiments herein are intended in all respects to be illustrativerather than restrictive.

Unless otherwise expressly stated, it is in no way intended that anymethod set forth herein be construed as requiring that its steps beperformed in a specific order. Accordingly, where a method claim doesnot actually recite an order to be followed by its steps or it is nototherwise specifically stated in the claims or descriptions that thesteps are to be limited to a specific order, it is no way intended thatan order be inferred, in any respect. This holds for any possiblenon-express basis for interpretation, including: matters of logic withrespect to arrangement of steps or operational flow; plain meaningderived from grammatical organization or punctuation; the number or typeof embodiments described in the specification.

It will be apparent to those skilled in the art that variousmodifications and variations can be made without departing from thescope or spirit. Other embodiments will be apparent to those skilled inthe art from consideration of the specification and practice disclosedherein. It is intended that the specification and examples be consideredas exemplary only, with a true scope and spirit being indicated by thefollowing claims.

What is claimed is:
 1. A method comprising: providing content to a firstdevice; receiving a command to provide the content to a second device;determining the second device from a plurality of devices based on aproximity metric; and providing the content to the second device.
 2. Themethod of claim 1, wherein the proximity metric is one or more of: areceived signal strength indicator (RSSI) or GPS coordinates.
 3. Themethod of claim 2, wherein determining the second device from aplurality of devices based on a proximity metric comprises: determininga RSSI for the first device; determining a RSSI for each of theplurality of devices; determining which device of the plurality ofdevices has a RSSI with the least difference from the RSSI for the firstdevice; and identifying the device of the plurality of devices with theleast difference from the RSSI from the first device as the seconddevice.
 4. The method of claim 2, wherein determining the second devicefrom a plurality of devices based on a proximity metric comprises:determining a GPS location for the first device; determining a GPSlocation for each of the plurality of devices; determining which deviceof the plurality of devices has a GPS location closest to the GPSlocation for the first device; and identifying the device of theplurality of devices closest to the first device as the second device.5. The method of claim 1, wherein determining the second device from aplurality of devices based on a proximity metric further comprisesdetermining if a device from the plurality of devices has been excludedfrom consideration as the second device.
 6. The method of claim 1,wherein determining the second device from a plurality of devices basedon a proximity metric further comprises determining a content type ofthe content and excluding a device from the plurality of devices fromconsideration as the second device based on the content type.
 7. Themethod of claim 1, wherein the command to provide the content to asecond device comprises a direction associated with the command.
 8. Themethod of claim 7, wherein determining the second device from aplurality of devices based on a proximity metric further comprisesexcluding a device from the plurality of devices from consideration asthe second device based on the direction associated with the command. 9.A method comprising: receiving a request to switch content from beingdelivered to a first device to being delivered to a second device;receiving a switch point: determining the second device from a pluralityof devices based on a proximity metric; and providing a command toprovide content to the second device at the switch point.
 10. The methodof claim 9, wherein the switch point indicates a point in time in thecontent being delivered at which the content should begin to be providedto the second device.
 11. The method of claim 9, wherein the proximitymetric is one or more of: a received signal strength indicator (RSSI) orGPS coordinates.
 12. The method of claim 11, wherein determining thesecond device from a plurality of devices based on a proximity metriccomprises: determining a RSSI for the first device; determining a RSSIfor each of the plurality of devices; determining which device of theplurality of devices has a RSSI with the least difference from the RSSIfor the first device; and identifying the device of the plurality ofdevices with the least difference from the RSSI from the first device asthe second device.
 13. The method of claim 11, wherein determining thesecond device from a plurality of devices based on a proximity metriccomprises: determining a GPS location for the first device; determininga GPS location for each of the plurality of devices; determining whichdevice of the plurality of devices has a GPS location closest to the GPSlocation for the first device; and identifying the device of theplurality of devices closest to the first device as the second device.14. The method of claim 9, wherein determining the second device from aplurality of devices based on a proximity metric further comprisesdetermining if a device from the plurality of devices has been excludedfrom consideration as the second device.
 15. The method of claim 9,wherein determining the second device from a plurality of devices basedon a proximity metric further comprises determining a content type ofthe content and excluding a device from the plurality of devices fromconsideration as the second device based on the content type.
 16. Themethod of claim 9, wherein the request to switch content comprises adirection associated with the request.
 17. The method of claim 16,wherein determining the second device from a plurality of devices basedon a proximity metric further comprises excluding a device from theplurality of devices from consideration as the second device based onthe direction associated with the request.
 18. An apparatus comprising:a memory; and a processor, wherein the processor is configured forperforming steps comprising: receiving a request to switch content frombeing delivered to a first device to being delivered to a second device;receiving a switch point; determining the second device from a pluralityof devices based on a proximity metric; and providing a command toprovide content to the second device at the switch point.
 19. Theapparatus of claim 18, wherein the proximity metric is one or more of: areceived signal strength indicator (RSSI) or GPS coordinates.
 20. Theapparatus of claim 19, wherein determining the second device from aplurality of devices based on a proximity metric comprises: determininga RSSI for the first device; determining a RSSI for each of theplurality of devices; determining which device of the plurality ofdevices has a RSSI with the least difference from the RSSI for the firstdevice; and identifying the device of the plurality of devices with theleast difference from the RSSI from the first device as the seconddevice.